![]() ![]() |
Q: When registering the same Rendezvous service multiple times while running on the same machine, none of the registrations receive a name conflict error. Why is this? A: If you try to register the same name/type/domain/port multiple times on the same machine, you won't get an error because the DNS resource records being registered have identical rdata so the registrations are in agreement. Only when the rdata differs is it considered a name conflict. The reason for this is to allow Rendezvous proxies of various kinds. Suppose you have a networked printer which does LPR printing, but doesn't advertise that using Rendezvous. You could create a Rendezvous proxy to advertise on the printer's behalf. For fault-tolerance, you might run two proxies on the network, and you would not want the two proxies to conflict with each other. Because Rendezvous only considers it to be a conflict when the two sets of rdata are different, the two proxies can coexist peacefully side-by-side. As long as both give identical answers to the same question, neither sees the other's answer as being in conflict with its own. An example of when the rdata would be different is if you registered two identical name/type/domain/ports from different machines by using CFNetServices or NSNetServices. In that case, the rdata will be different because the Target Host in the SRV record will contain a different address record (because the two machines have different IP addresses), and this will generate a name conflict error. Alternatively, registering two identical name/type/domains from the same machine, but using two different port numbers would be considered a name conflict. Even though registering the same Rendezvous service multiple times on the same machine is perfectly legal, it most often happens because of an application bug. Therefore, in order to alert the application developer of this situation, an error message is printed to the system log (/var/log/system.log) which is similar to the following.
For more information about the protocols used by Rendezvous, please see the technical specifications referenced by the Rendezvous Developer Web Site. [Oct 23, 2003] |
Developer Documentation | Technical Notes | Development Kits | Sample Code |